/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */

import { getObj } from '@/api/admin/tenant.js'
import { validatenull } from '@/util/validate.js'

const validateTenantName = (rule, value, callback) => {
  const flag = new RegExp(/[\u4E00-\u9FFFa-zA-Z\s.,?!，。？！~@#$%^&*()_+|=\-\\[\]{};':"<>/]+/g).test(value)
  if (!flag) {
    callback(new Error('组织名称仅支持中英文和标点符号'))
  } else {
    callback()
  }
}

// const validateTenantCode = (rule, value, callback) => {
//   const obj = { 'code': value }
//   getObj(obj).then(response => {
//     if (window.boxType === 'edit') {
//       return callback()
//     }
//     const result = response.data.data
//     if (result && result.length !== 0) {
//       callback(new Error('同名租户标识已存在'))
//     } else {
//       callback()
//     }
//   })
// }

// const validateTenantDomain = (rule, value, callback) => {
//   if (validatenull(value)) {
//     return callback()
//   }

//   const obj = { 'tenantDomain': value }
//   getObj(obj).then(response => {
//     if (window.boxType === 'edit') {
//       return callback()
//     }
//     const result = response.data.data
//     if (result && result.length !== 0) {
//       callback(new Error('域名已存在'))
//     } else {
//       callback()
//     }
//   })
// }

export const tableOption = {
  border: true,
  index: true,
  indexLabel: '序号',
  stripe: true,
  menuAlign: 'center',
  searchMenuSpan: 6,
  align: 'center',
  column: [
    {
      label: '租户id',
      prop: 'id',
      hide: true,
      editDisabled: true,
      editDisplay: false,
      addDisplay: false
    },
    {
      label: '组织名称',
      prop: 'name',
      search: true,
      rules: [
        { required: true, message: '请输入租户名称', trigger: 'blur' },
        { min: 1, max: 32, message: '长度在 1 到 32 个字符', trigger: 'blur' },
        { validator: validateTenantName, trigger: 'blur' }
      ]
    },
    // {
    //   label: '租户编号',
    //   type: 'number',
    //   prop: 'code',
    //   editDisabled: true,
    //   rules: [{
    //     required: true,
    //     message: '请输入租户编号',
    //     trigger: 'blur'
    //   }, { validator: validateTenantCode, trigger: 'blur' }]
    // },
    // {
    //   label: '租户域名',
    //   prop: 'tenantDomain',
    //   search: true,
    //   rules: [{
    //     required: false,
    //     message: '请输入租户域名',
    //     trigger: 'blur'
    //   }, { validator: validateTenantDomain, trigger: 'blur' }]
    // },
    // {
    //   label: '功能套餐',
    //   prop: 'menuId',
    //   type: 'select',
    //   border: true,
    //   dicUrl: '/admin/tenant-menu/list',
    //   value: '',
    //   props: {
    //     label: 'name',
    //     value: 'id'
    //   },
    //   rules: [
    //     { required: true, message: '请选择租户套餐', trigger: 'blur' }
    //   ]
    // },
    // {
    //   label: '开始时间',
    //   prop: 'startTime',
    //   type: 'datetime',
    //   format: 'yyyy-MM-dd hh:mm:ss',
    //   valueFormat: 'yyyy-MM-dd hh:mm:ss',
    //   rules: [{
    //     required: true,
    //     message: '请输入结束时间',
    //     trigger: 'blur'
    //   }]
    // },
    // {
    //   label: '结束时间',
    //   prop: 'endTime',
    //   type: 'datetime',
    //   format: 'yyyy-MM-dd hh:mm:ss',
    //   valueFormat: 'yyyy-MM-dd hh:mm:ss',
    //   rules: [{
    //     required: true,
    //     message: '请输入结束时间',
    //     trigger: 'blur'
    //   }]
    // },
    // {
    //   label: '状态',
    //   prop: 'status',
    //   type: 'radio',
    //   border: true,
    //   dicUrl: '/admin/dict/type/status_type',
    //   search: true,
    //   value: '0'
    // }
  ]
}
